GerenteRequisicionInventario = function(){
	var configWindowTop = {
		add: "gerenteRequisicionInventarioAgregarTop",
		remove: "gerenteRequisicionInventarioEliminarTop",
	};
	return {
		guardarRequisiciones: function(){
			Asi.message.progress(Asi.constants.SAVING);
				Ext.getCmp("gerenteRequisicionInventarioForm").getForm().submit({
					url: Asi.constants.CONTEXT_PATH + "/empleado/guardarRequisicionAutorizada",
	    			timeout: Asi.constants.TIMEOUT_SECONDS,
	    			params: {
	    				"idRequsiciones": GerenteRequisicionInventario.obtenerIdRequisicion(),
	    				"estadoRequisiciones": GerenteRequisicionInventario.obtenerEstadosRequisiciones(),
	    				"clienteId": AsiGen.getUsuarioId()
	    			},
	    			success: function(form, action){
	    				var gridCompra = Ext.getCmp("gerenteRequisicionInventarioGrid");
//	    				gridCompra.getStore().removeAll();
	    				gridCompra.getStore().sync();
	    				Asi.message.alert(action.result.message);
	    			},
	    			failure: Asi.form.failureProcedure
				});
		},
		obtenerIdRequisicion: function(){
			var i = 0;
			var grid = Ext.getCmp("gerenteRequisicionInventarioGrid");
			var seprarado = "~";
			var gridData = "";
			Ext.each(grid.getStore().getRange(), function(){
				gridData = gridData + Ext.getCmp("gerenteRequisicionInventarioGrid").getStore().getRange()[i].data.requisicionId + seprarado;
				i++;
          });
			return gridData == "~" ? "":gridData;
		},
		obtenerEstadosRequisiciones: function(){
			var i = 0;
			var grid = Ext.getCmp("gerenteRequisicionInventarioGrid");
			var seprarado = "~";
			var gridData = "";
			Ext.each(grid.getStore().getRange(), function(){
				gridData = gridData + Ext.getCmp("gerenteRequisicionInventarioGrid").getStore().getRange()[i].data.requisicionEstado + seprarado;
				i++;
          });
			return gridData == "~" ? "":gridData;
		},
		cargarGridHijoPorIdPadre: function(){
			Asi.message.progress("Cargando Informaci\u00F3n...");
			Ext.getCmp("gerenteRequisicionInventarioForm").getForm().submit({
    			url: Asi.constants.CONTEXT_PATH + "/empleado/cargarHijoPorPadreIdAutorizada",
    			timeout: Asi.constants.TIMEOUT_SECONDS,
    			params: {
    				"idRequisicion": Ext.getCmp("gerenteRequisicionInventarioGrid").getSelectionModel().selected.items[0].data.requisicionId
    			},
    			success: function(form, action){
    				Asi.message.alert(action.result.message);
    				if(action.result.detalleRequicisiones){
    					Ext.getCmp("gerenteRequisicionInventarioGridHijo").getStore().loadData(action.result.detalleRequicisiones);
    				}
    			},
    			failure: Asi.form.failureProcedure
   			});
		},
		
		init: function(config){
			var configToReturn = {};
			configToReturn.items = [];
			configToReturn.menu = AsiBotones.getBotones(AsiGen.getTipoUsuario(), AsiGen.getPantallaId());
			configToReturn.items.push({
				flex: 1,
				title: "REQUISICION AUTORIZADA",
				autoScroll: true,
				layout : {
					type : "table",
					columns : 1,
					tableAttrs : {
						style : {
							width : "730px",
							"margin-top" : "5px",
							"margin-bottom" : "40px"
						},
						align : "center"
					}
				},
//				modal : true,
				closable : false,
				defaults: {width: 730, margins: "5 0 5 0"},
//				dockedItems: [
//					{
//						xtype: "toolbar",
//						dock: "top",
//						items: [
//						   '->',
//						   {
//					    	   text: "Eliminar Producto",
//					    	   id: "gerenteRequisicionInventarioEliminarTop",
//							   iconCls: Asi.constants.icons.DELETE_ICON,
//							   handler: GerenteRequisicionInventario.cargarGridHijoPorIdPadre
//					       },
//					       {
//					    	   text: "Guardar Producto",
//					    	   id: "gerenteRequisicionInventarioGuardarTop",
//							   iconCls: Asi.constants.icons.SAVE_ICON,
//							   handler: GerenteRequisicionInventario.guardarRequisiciones
//					       }
//					    ]
//					}
//	            ],
				items: [
					{
						title: "LISTADO DE PRODUCTOS A COMPRAR",
						xtype: "grid",
						id: "gerenteRequisicionInventarioGrid",
						height: 240,
						width:730,
						collapsible: true,
						colspan: 6,
						plugins: [Ext.create('Ext.grid.plugin.CellEditing',{clicksToEdit: 1})],
						minHeight: 10,
						store: new Ext.data.SimpleStore({
					    	data: config.requisiciones || [],
					    	fields: [
								"requisicionId",
								"requisicionFecha",
								"requisicionObservacion",
								"requisicionEstado"
			    	        ]
					    }),
					    columns: [
					              {header: "Numero de Requisicion",  dataIndex: "requisicionId"},
							      {header: "Fecha Requisicion",  dataIndex: "requisicionFecha",flex: 1},
							      {header: "Observacion",  dataIndex: "requisicionObservacion",flex: 1},
//							      {header: "Estado",  dataIndex: "requisicionEstado",flex: 1},
							      
					    ],
					listeners: {
				    	selectionchange: function(model, records){
				    		if(!records || records.length <= 0) return;
				    		var record = records[0];
				    		if(record != null){
				    			//Aqui se cargara el segundo gridview
				    			
				    			GerenteRequisicionInventario.cargarGridHijoPorIdPadre();
				    			
				    			
				    		}
				    	},
				    	
				    }
					},{
			        	xtype: "form",
						id: "gerenteRequisicionInventarioForm",
						flex: 1,
					    border: false,
						layout: {
							type: "table",
							columns: 6,
							tableAttrs: {
					            style: {width: "730px"},
					            align: "center"
					        }
						},
						defaults: {
							width: 230,
							selectOnFocus: true,
							enforceMaxLength: true,
							maxLength: 200,
							typeAhead: true,
							minChars: 1,
							queryMode: "local",
							forceSelection: true,
							allowEnable: true,
							colspan: 2
						},
						items: [
						{
							xtype: "label",
							text: "Detalle de Requisicion",
							cls: "x-form-item label_header",
							colspan: 6,
							width: 730
						},
												]
						
			        },
			        {
						xtype: "grid",
						id: "gerenteRequisicionInventarioGridHijo",
						height: 240,
						width:730,
						collapsible: true,
						colspan: 6,
						minHeight: 10,
						store: new Ext.data.SimpleStore({
					    	data: [],
					    	fields: [
								"requicisionDetalleId",
								"requesicionDetalle",
								"requisicionDetalleCantidad",
								"requisicionId",
								"materiaPrimaNombre"
			    	        ]
					    }),
					    columns: [
							      {header: "No Req",  dataIndex: "requisicionId",flex: 1},
							      {header: "No detalle Req.",  dataIndex: "requicisionDetalleId", flex: 1},
							      {header: "Materia Prima",  dataIndex: "materiaPrimaNombre",flex: 1},
							      {header: "Cantidad",  dataIndex: "requisicionDetalleCantidad",flex: 1},
							      {header: "Detalle",  dataIndex: "requesicionDetalle",flex: 1}
					    ]
					}

				]
			});
			return configToReturn;
		}
	};
}();